type: object
properties:
  type:
    description: 'the type of the resource'
    type: string
    enum:
      - MeshHealthCheck
  mesh:
    description: 'Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources.'
    type: string
    default: default
  name:
    description: 'Name of the Kuma resource'
    type: string
  spec:
    description: Spec is the specification of the Kuma MeshHealthCheck resource.
    properties:
      targetRef:
        description: |-
          TargetRef is a reference to the resource the policy takes an effect on.
          The resource could be either a real store object or virtual resource
          defined inplace.
        properties:
          kind:
            description: Kind of the referenced resource
            enum:
              - Mesh
              - MeshSubset
              - MeshGateway
              - MeshService
              - MeshServiceSubset
              - MeshHTTPRoute
            type: string
          mesh:
            description: Mesh is reserved for future use to identify cross mesh resources.
            type: string
          name:
            description: |-
              Name of the referenced resource. Can only be used with kinds: `MeshService`,
              `MeshServiceSubset` and `MeshGatewayRoute`
            type: string
          proxyTypes:
            description: |-
              ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
              all data plane types are targeted by the policy.
            items:
              enum:
                - Sidecar
                - Gateway
              type: string
            minItems: 1
            type: array
          tags:
            additionalProperties:
              type: string
            description: |-
              Tags used to select a subset of proxies by tags. Can only be used with kinds
              `MeshSubset` and `MeshServiceSubset`
            type: object
        type: object
      to:
        description: To list makes a match between the consumed services and corresponding configurations
        items:
          properties:
            default:
              description: |-
                Default is a configuration specific to the group of destinations referenced in
                'targetRef'
              properties:
                alwaysLogHealthCheckFailures:
                  description: |-
                    If set to true, health check failure events will always be logged. If set
                    to false, only the initial health check failure event will be logged. The
                    default value is false.
                  type: boolean
                eventLogPath:
                  description: |-
                    Specifies the path to the file where Envoy can log health check events.
                    If empty, no event log will be written.
                  type: string
                failTrafficOnPanic:
                  description: |-
                    If set to true, Envoy will not consider any hosts when the cluster is in
                    'panic mode'. Instead, the cluster will fail all requests as if all hosts
                    are unhealthy. This can help avoid potentially overwhelming a failing
                    service.
                  type: boolean
                grpc:
                  description: |-
                    GrpcHealthCheck defines gRPC configuration which will instruct the service
                    the health check will be made for is a gRPC service.
                  properties:
                    authority:
                      description: |-
                        The value of the :authority header in the gRPC health check request,
                        by default name of the cluster this health check is associated with
                      type: string
                    disabled:
                      description: If true the GrpcHealthCheck is disabled
                      type: boolean
                    serviceName:
                      description: Service name parameter which will be sent to gRPC service
                      type: string
                  type: object
                healthyPanicThreshold:
                  anyOf:
                    - type: integer
                    - type: string
                  description: |-
                    Allows to configure panic threshold for Envoy cluster. If not specified,
                    the default is 50%. To disable panic mode, set to 0%.
                    Either int or decimal represented as string.
                  x-kubernetes-int-or-string: true
                healthyThreshold:
                  default: 1
                  description: Number of consecutive healthy checks before considering a host healthy.
                  format: int32
                  type: integer
                http:
                  description: |-
                    HttpHealthCheck defines HTTP configuration which will instruct the service
                    the health check will be made for is an HTTP service.
                  properties:
                    disabled:
                      description: If true the HttpHealthCheck is disabled
                      type: boolean
                    expectedStatuses:
                      description: List of HTTP response statuses which are considered healthy
                      items:
                        format: int32
                        type: integer
                      type: array
                    path:
                      default: /
                      description: |-
                        The HTTP path which will be requested during the health check
                        (ie. /health)
                      type: string
                    requestHeadersToAdd:
                      description: |-
                        The list of HTTP headers which should be added to each health check
                        request
                      properties:
                        add:
                          items:
                            properties:
                              name:
                                maxLength: 256
                                minLength: 1
                                pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
                                type: string
                              value:
                                type: string
                            required:
                              - name
                              - value
                            type: object
                          maxItems: 16
                          type: array
                          x-kubernetes-list-map-keys:
                            - name
                          x-kubernetes-list-type: map
                        set:
                          items:
                            properties:
                              name:
                                maxLength: 256
                                minLength: 1
                                pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$
                                type: string
                              value:
                                type: string
                            required:
                              - name
                              - value
                            type: object
                          maxItems: 16
                          type: array
                          x-kubernetes-list-map-keys:
                            - name
                          x-kubernetes-list-type: map
                      type: object
                  type: object
                initialJitter:
                  description: |-
                    If specified, Envoy will start health checking after a random time in
                    ms between 0 and initialJitter. This only applies to the first health
                    check.
                  type: string
                interval:
                  default: 1m
                  description: Interval between consecutive health checks.
                  type: string
                intervalJitter:
                  description: |-
                    If specified, during every interval Envoy will add IntervalJitter to the
                    wait time.
                  type: string
                intervalJitterPercent:
                  description: |-
                    If specified, during every interval Envoy will add IntervalJitter *
                    IntervalJitterPercent / 100 to the wait time. If IntervalJitter and
                    IntervalJitterPercent are both set, both of them will be used to
                    increase the wait time.
                  format: int32
                  type: integer
                noTrafficInterval:
                  description: |-
                    The "no traffic interval" is a special health check interval that is used
                    when a cluster has never had traffic routed to it. This lower interval
                    allows cluster information to be kept up to date, without sending a
                    potentially large amount of active health checking traffic for no reason.
                    Once a cluster has been used for traffic routing, Envoy will shift back
                    to using the standard health check interval that is defined. Note that
                    this interval takes precedence over any other. The default value for "no
                    traffic interval" is 60 seconds.
                  type: string
                reuseConnection:
                  description: Reuse health check connection between health checks. Default is true.
                  type: boolean
                tcp:
                  description: |-
                    TcpHealthCheck defines configuration for specifying bytes to send and
                    expected response during the health check
                  properties:
                    disabled:
                      description: If true the TcpHealthCheck is disabled
                      type: boolean
                    receive:
                      description: |-
                        List of Base64 encoded blocks of strings expected as a response. When checking the response,
                        "fuzzy" matching is performed such that each block must be found, and
                        in the order specified, but not necessarily contiguous.
                        If not provided or empty, checks will be performed as "connect only" and be marked as successful when TCP connection is successfully established.
                      items:
                        type: string
                      type: array
                    send:
                      description: Base64 encoded content of the message which will be sent during the health check to the target
                      type: string
                  type: object
                timeout:
                  default: 15s
                  description: Maximum time to wait for a health check response.
                  type: string
                unhealthyThreshold:
                  default: 5
                  description: |-
                    Number of consecutive unhealthy checks before considering a host
                    unhealthy.
                  format: int32
                  type: integer
              type: object
            targetRef:
              description: |-
                TargetRef is a reference to the resource that represents a group of
                destinations.
              properties:
                kind:
                  description: Kind of the referenced resource
                  enum:
                    - Mesh
                    - MeshSubset
                    - MeshGateway
                    - MeshService
                    - MeshServiceSubset
                    - MeshHTTPRoute
                  type: string
                mesh:
                  description: Mesh is reserved for future use to identify cross mesh resources.
                  type: string
                name:
                  description: |-
                    Name of the referenced resource. Can only be used with kinds: `MeshService`,
                    `MeshServiceSubset` and `MeshGatewayRoute`
                  type: string
                proxyTypes:
                  description: |-
                    ProxyTypes specifies the data plane types that are subject to the policy. When not specified,
                    all data plane types are targeted by the policy.
                  items:
                    enum:
                      - Sidecar
                      - Gateway
                    type: string
                  minItems: 1
                  type: array
                tags:
                  additionalProperties:
                    type: string
                  description: |-
                    Tags used to select a subset of proxies by tags. Can only be used with kinds
                    `MeshSubset` and `MeshServiceSubset`
                  type: object
              type: object
          required:
            - targetRef
          type: object
        type: array
    required:
      - targetRef
    type: object
